﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using vudu.Datos.SqlServer;
using vudu.Logica.Clases;

namespace vudu.Pruebas
{
    [TestFixture]
    public class PruebaEnlaceDeDatosHorarioClase
    {
        private SqlServerHorarioClase _conector;
        private ControladorHorarioDeClase _horario;

        public PruebaEnlaceDeDatosHorarioClase()
        {
        }

        #region Pruebas Grupo5
        [SetUp]
        public void Init()
        {
            _conector = new SqlServerHorarioClase();
            _horario = new ControladorHorarioDeClase();
        }

        [Test]
        public void PruebaConsultarTodosLosHorarios()
        {
            List<ControladorHorarioDeClase> horarios = _conector.ConsultarTodosLosHorarios();
            if (horarios.Count == 0)
                Assert.IsNull(horarios);
            else
                Assert.True(horarios.Count > 0);
        }

        [Test]
        public void PruebaConsultarTodosLosHorariosDeSeccion()
        {
            List<ControladorHorarioDeClase> horarios = _conector.ConsultarTodosLosHorariosDeSeccion("1");
            if (horarios.Count == 0)
                Assert.IsEmpty(horarios);
            else
                Assert.True(horarios.Count > 0);
        }

        [Test]
        public void PruebaAgregarHorarioSeccionMateria()
        {

            _horario.Dia = "Lunes";
            _horario.HoraInicio = DateTime.Parse("7:00");
            _horario.HoraFin = DateTime.Parse("9:00");
            _horario.SalonDeClase.NumeroSalon = 1;
            bool seInserto = new SqlServerHorarioClase().AgregarHorarioSeccionMateria(_horario, "1");
            Assert.True(seInserto);
        }

        [Test]
        public void PruebaEliminarHorarioPorSeccion()
        {
            int eliminar = new SqlServerHorarioClase().EliminarHorarioPorSeccion("1");
            Assert.AreEqual(eliminar, 1);
            Assert.AreNotEqual(eliminar, 0);
            List<ControladorHorarioDeClase> losHorarios = new SqlServerHorarioClase().ConsultarTodosLosHorariosDeSeccion("1");
            Assert.AreEqual(losHorarios.Count, 0);
        }

        [Test]
        public void PruebaModificarHorario()
        {
            ControladorHorarioDeClase dePrueba = new ControladorHorarioDeClase();
            dePrueba.IdHorarioClase = 1;
            List<String[]> modificaciones = new List<String[]>();
            String[] nombre = new String[3];
            nombre[1] = "HoraInicio";
            nombre[2] = "8:00";
            String[] teoria = new String[3];
            teoria[1] = "HoraFin";
            teoria[2] = "10:00";
            String[] practica = new String[3];
            practica[1] = "Dia";
            practica[2] = "Lunes";
            String[] descrip = new String[3];
            descrip[1] = "Salon";
            descrip[2] = "1";

            modificaciones.Add(nombre);
            modificaciones.Add(teoria);
            modificaciones.Add(practica);
            modificaciones.Add(descrip);

            bool respuesta = new SqlServerHorarioClase().ModificarHorarioSeccion(modificaciones,dePrueba);
            Assert.True(respuesta);

        }

        #endregion Pruebas Grupo5
    }
}